<?php

Load::models('inventarios','movimientos','movimientosproductos');
class InventarioController extends AdminController {

	
	
	public function stock(){
		
		if(Input::hasPost('stock')){
		
            $inventario = new Inventarios(Input::post('stock'));        
            if($inventario->guardar()){
                Flash::valid('Stock guardado correctamente');                
                Input::delete();
                return;               
            }else{
                Flash::error('Stock no pudo ser guardado');
            }
        }
				
	}
	
	public function actualizar($inventario_id){		
            $inventario = new Inventarios();
            
            if(Input::hasPost('stock')){
 
                if($inventario->guardar(Input::post('stock'))){

                    Flash::valid('Inventario actualizado correctamente');            
                    return Router::redirect();

                } else {
                    Flash::error('El inventario no pudo ser actualizado');
                }
            
            }else {
                $this->inventario = $inventario->getByID((int)$inventario_id);
            }
		
	}
	
	public function movimientos($pagina=1){
            $this->titulo = "Movimientos del inventario";            
            try {
                $movimientos = new Movimientos();
                $this->movimientos = $movimientos->obtener_movimientos($pagina);
                } catch (KumbiaException $e) {
                    View::excepcion($e);
                }
                                                        
	}
        
        public function detalles_movimiento($movimiento_id , $pagina = 1){
            try{
                $this->movimiento_id = $movimiento_id;
                $movimientosProductos = new Movimientosproductos();                        
                $this->productos = $movimientosProductos->paginate("page: $pagina ", "conditions: movimientos_id = $movimiento_id");
            }  catch (KumbiaException $e){
                View::excepcion($e);
            }                        
        }
        
        public function registrar_producto($movimiento_id){
            $this->movimiento_id = $movimiento_id;
            $this->titulo = 'Registrar Producto';
            try {
                if (Input::hasPost('movimientosproductos')) {
                    $movimientosProductos = new Movimientosproductos(Input::post('movimientosproductos'));

                    if ($movimientosProductos->save()) {
                        Flash::valid('El producto fué agregado Exitosamente...!!!');
                        Acciones::add("Agregó el Producto {$movimientosProductos->productos_id} al sistema", 'movimientosproductos');
                        return Router::toAction("detalles_movimiento/$movimiento_id");
                    } else {
                        Flash::warning('No se Pudieron Guardar los Datos...!!!');
                    }
                }
            } catch (KumbiaException $e) {
                View::excepcion($e);
            } 
        }
        
        public function actualizar_producto($movimientosproductos_id){
                $this->titulo = 'Actualizar Producto';
                $this->movimiento_id =$movimientosproductos_id;
            try {
                View::select('registrar_producto');

                $movimientosProductos = new Movimientosproductos();                
                $this->movimientosproductos = $movimientosProductos->find_first($movimientosproductos_id);

                if (Input::hasPost('movimientosproductos')) {

                    if ($movimientosProductos->update(Input::post('movimientosproductos'))) {
                        Flash::valid('El producto fué actualizado Exitosamente...!!!');
                        Acciones::add("Actualizo el producto {$movimientosProductos->id}", 'movimientosproducto');
                        return Router::toAction("detalles_movimiento/$movimientosProductos->movimientos_id");
                    } else {
                        Flash::warning('No se Pudieron Guardar los Datos...!!!');
                        unset($this->movimientosproductos); //para que cargue el $_POST en el form
                    }
                }
            } catch (KumbiaException $e) {
                View::excepcion($e);
            }
        }
        
        
        public function eliminar_producto($movimientosproductos_id){
            try {
                $movimientosProductos = new Movimientosproductos();
                $movimientosProductos->find_first($movimientosproductos_id);
                if ($movimientosProductos->delete()) {
                    Flash::valid("El producto fué Eliminado...!!!");
                    Acciones::add("Eliminó al producto del movimiento {$movimientosProductos->id} del sistema", 'movimientosproductos');
                } else {
                    Flash::warning("No se Pudo Eliminar el producto...!!!");
                }
            } catch (KumbiaException $e) {
                View::excepcion($e);
                }
            return Router::toAction("detalles_movimiento/$movimientosProductos->movimientos_id");            
        }
        
        public function registrar(){            
            $this->titulo = "Entradas al inventario";                        
            try {                                                    
                    if (Input::hasPost('movimientos')) {
                        $movimiento = new Movimientos(Input::post('movimientos'));

                        if ($movimiento->save()) {                    
                            Acciones::add("Registro de movimiento a inventario {$movimiento->id} al sistema", 'Movimientos');
                            return Router::redirect('registrar/2');
                        } else {
                            Flash::warning('No se Pudieron Guardar los Datos...!!!');
                        }
                    }                                                                        
            } catch (KumbiaException $e) {
                View::excepcion($e);
            }
                        
        } 
		
}